Over the past decade the mobile phone has evolved from a voice-centric device into a mobile personal computer. No longer just for telephony, the mobile phone has become a multitasking tool, useful for activities such as emailing and web browsing. The current trends for mobile phones are toward the mimicking of desktop functionality. As a result, mobile devices are becoming enterprise endpoints with rich applications and core enterprise connectivity. Because an enterprise may need to specifically provision a mobile device for accessing restricted data, an employee may either have to sacrifice a personal device or carry two devices, one personal and one enterprise, to work.
From an end-user perspective, it is desirable to consolidate a personal mobile device with an enterprise device. Virtualization offers an opportunity to provide a convenient solution by preserving isolation of environments without requiring a second physical enterprise device. Co-existing virtual phones on a personal mobile phone represents a very attractive alternative to existing solutions involving multiple physical mobile phones. The rapid pace of hardware advances in mobile devices over the past several years has led to a class of mobile phones with resources capable of supporting multiple virtual phones where the virtualization overhead is small.
Many mobile platforms are often equipped with flash storage devices exhibiting sub-optimal non-sequential write performance (relative to sequential writes on that device), such as Secure Digital (SD) cards, embedded SD (eSD) cards, or embedded MultiMediaCard (eMMC). The image and checkpoint files for a virtual mobile phone may reside in these storage devices due to their large size. However, these storage devices are designed as a low-cost storage solution and are optimized for media files, such as photos, audio, and video files. As a result, these storage devices do not perform well with non-sequential write operations, which are typical of a virtual phone. Furthermore, flash storage devices such as SD cards typically have the File Allocation Table (FAT) file system for interoperability purposes. However, the FAT file system allows applications to write in the storage without restriction, leading to weak security and reduced robustness, that is, the storage is unprotected. As a result, malicious host applications running alongside the virtual mobile phone can arbitrarily access and modify the virtual phone image and checkpoint files. Unprotected storage is also exposed when a mobile platform is connected to a computer via a USB cable when in mass storage mode. In addition, host crashes or battery failures can cause the virtual phone image and checkpoint files to become corrupt.
While flash storage devices such as SD/eSD/eMMC bring many desirable features to mobile virtualization, some issues remain unsolved regarding performance, security, and robustness when a virtual mobile phone image and checkpoint files are stored in an SD/eSD/eMMC card. In this disclosure, the term “SD card” is used in a generic sense and can refer to any flash storage devices which has sub-optimal non-sequential write performance and which can be potentially unprotected.